1. Field of the Invention
The invention disclosed and claimed herein generally pertains to a method and apparatus for using multiple, dynamically scheduled synthetic transactions to monitor the performance and availability of a transaction server, or other element, of an electronic business (e-business) system. More particularly, the invention pertains to a method of the above type wherein the synthetic transactions are executed by multiple monitoring agents, which are located in different zones of the network topology associated with the e-business system. Even more particularly, the invention pertains to a method of the above type wherein synthetic transactions are scheduled to be run dynamically, upon detecting a problem in the operation of the transaction server or other element of the e-business system.
2. Description of the Related Art
Performance monitors are presently used to capture detailed transaction and application performance data for electronic business and enterprise transactions. Every step of a customer transaction may be monitored as it passes through the network topology of the e-business system. The network topology may comprise an array of links, nodes and other elements, such as hosts, applications, Web and proxy servers, Web transaction servers, database management software, and legacy back-end software. Usefully, characteristic performance and availability data for these network elements is compiled and stored in a data repository, for historical analysis and long-term planning. This data can be compiled by simulating customer transactions, and then collecting performance data resulting therefrom. The collected data may be used to assess the condition of electronic business components and configurations, in order to ensure e-business owners that their web applications are available and meet Service Level Agreement (SLA) targets.
In one approach, performance data as described above is acquired by using performance monitors to record normal business transactions as they occur on the web applications of a given electronic business. A recording component captures performance data from these actual user transactions, as they are respectively executed by elements (e.g., Web servers or Web application servers) of the e-business network topology or environment. A playback component then executes the recorded transactions, in order to simulate actual user activity. These simulated transactions are known as synthetic transactions, and the playback components may be referred to as playback engines. This use of synthetic transactions allows an e-business to understand how transactions are processed by the various elements of the e-business, and such understanding is useful in determining which processes are causing problems and how processes may be improved.
At present, in order to obtain performance and availability data for an e-business transaction server or the like, it is common practice to generate a series of synthetic transactions according to a pre-specified schedule. The data resulting from these transactions is typically reported to a central location. In this process, however, there is a continuing dilemma or challenge in determining the proper frequency at which synthetic transactions should be executed. An administrator must run these transactions on every part or portion of a network of concern, even though the synthetic transactions provide no direct commercial benefit. Thus, generating synthetic transactions at a high frequency produces a correspondingly large amount of unnecessary traffic, which impacts on the back-end application, or other network element, that is being monitored. Excessive traffic of this sort can significantly degrade performance of the e-business system.
However, problems can also be encountered if synthetic transactions are scheduled to occur with too little frequency. Clearly, unnecessary delays can occur in detecting network element faults and errors, if intervals for generating synthetic transactions are too long. Moreover, when data from a synthetic transaction indicates a possible performance or availability problem, it is generally desirable to acquire additional data from other synthetic transactions, in order to confirm the problem and to locate its source. If the frequency for generating synthetic transactions is low, the time spent waiting for this additional data can be excessively long, and thus the discovery of a performance or availability problem will be significantly delayed. Also, it will take longer to obtain performance data from different regions of the network, which may further delay finding the source or location of a problem.
In the past, it has generally been hard to find a frequency for scheduling synthetic transactions that satisfactorily avoids both of these problems.